As a class of semiconductor data storage systems, flash memories are used in a variety of electronic devices, for example in music players and solid-state disk drives. Multilevel cell (MLC) flash memories have relatively low costs and high densities due to continuous improvements in scaling technology and the fact that MLC memories store more than one bit per cell. Scaling technology continues to increase cell density, which in turn enhances intercell interference (ICI), especially in MLC memories. Moreover, MLC technology narrows the width of the threshold voltage for each level and reduces the margins between adjacent levels in a cell, which results in degradation of reliability. Thus, reliable detection and encoding/decoding in flash memories is oftentimes difficult.